<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Kyoto Cabinet: kyotocabinet::IndexDB Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Kyoto Cabinet
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacekyotocabinet.html">kyotocabinet</a>      </li>
      <li class="navelem"><a class="el" href="classkyotocabinet_1_1IndexDB.html">IndexDB</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">kyotocabinet::IndexDB Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="kyotocabinet::IndexDB" -->
<p>Index database.  
 <a href="classkyotocabinet_1_1IndexDB.html#details">More...</a></p>

<p><code>#include &lt;kcdbext.h&gt;</code></p>

<p><a href="classkyotocabinet_1_1IndexDB-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a089a39135fe98e42d7579cafad4a91df">IndexDB</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#a089a39135fe98e42d7579cafad4a91df"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#adb8e2155f5880759c884d96e174954b1">~IndexDB</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#adb8e2155f5880759c884d96e174954b1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Error.html">BasicDB::Error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a43eeb2756754367bda566523dbb1c3c4">error</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the last happened error.  <a href="#a43eeb2756754367bda566523dbb1c3c4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a432e22e91fef59d7794c27ed5a2b91e1">set_error</a> (const char *file, int32_t line, const char *func, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1Error.html#aae81720eb2d1d8be04375d0f766d0fa2">BasicDB::Error::Code</a> code, const char *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the error information.  <a href="#a432e22e91fef59d7794c27ed5a2b91e1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a8b4a5c7c0afbec9c6209419e13d423f7">set_error</a> (<a class="el" href="classkyotocabinet_1_1BasicDB_1_1Error.html#aae81720eb2d1d8be04375d0f766d0fa2">BasicDB::Error::Code</a> code, const char *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the error information without source code information.  <a href="#a8b4a5c7c0afbec9c6209419e13d423f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a13a1c1b344469ae57a15aad97c594751">open</a> (const std::string &amp;<a class="el" href="classkyotocabinet_1_1IndexDB.html#a4e2b5308b9825138fb12feacc4d216ed">path</a>=&quot;:&quot;, uint32_t mode=<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664daed0e4bf55347835f8a1c277487767485">BasicDB::OWRITER</a>|<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664dafddaf6558a2c6e43223eb5c6f0d0e240">BasicDB::OCREATE</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Open a database file.  <a href="#a13a1c1b344469ae57a15aad97c594751"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#ae5b8288a966cd7f735167ee009e5b2c2">close</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the database file.  <a href="#ae5b8288a966cd7f735167ee009e5b2c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a5e63a88839cc8125820a2455b2550e25">set</a> (const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a record.  <a href="#a5e63a88839cc8125820a2455b2550e25"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a25122b492c8901e6cd1161a2513d941a">set</a> (const std::string &amp;key, const std::string &amp;value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a record.  <a href="#a25122b492c8901e6cd1161a2513d941a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#ab0c7203e02661b49bd60e544c362b2f6">add</a> (const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a record.  <a href="#ab0c7203e02661b49bd60e544c362b2f6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#af06141f3d1dc222aa75eba1eb82d6ac7">add</a> (const std::string &amp;key, const std::string &amp;value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a record.  <a href="#af06141f3d1dc222aa75eba1eb82d6ac7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a904a1008defc2e19e41c84386d94f087">replace</a> (const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace the value of a record.  <a href="#a904a1008defc2e19e41c84386d94f087"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a5dfa0bbd695f88989431f26d01044c0e">replace</a> (const std::string &amp;key, const std::string &amp;value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace the value of a record.  <a href="#a5dfa0bbd695f88989431f26d01044c0e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a1e3c12ff3f507a7e772ed72765dad74a">append</a> (const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Append the value of a record.  <a href="#a1e3c12ff3f507a7e772ed72765dad74a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#af62c70e54bbcf06ba405b38bbc88bc40">append</a> (const std::string &amp;key, const std::string &amp;value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a record.  <a href="#af62c70e54bbcf06ba405b38bbc88bc40"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a5f3636d157c62520dde6b71e9070dfa6">remove</a> (const char *kbuf, size_t ksiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a record.  <a href="#a5f3636d157c62520dde6b71e9070dfa6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a6cf584112edfe367de6ac3b573e34fa6">remove</a> (const std::string &amp;key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a record.  <a href="#a6cf584112edfe367de6ac3b573e34fa6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#ab4b2ddfe746908cd3845918b4f957b6f">get</a> (const char *kbuf, size_t ksiz, size_t *sp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the value of a record.  <a href="#ab4b2ddfe746908cd3845918b4f957b6f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a9d627991d67c7740562c243dddf5e7f5">get</a> (const std::string &amp;key, std::string *value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the value of a record.  <a href="#a9d627991d67c7740562c243dddf5e7f5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a46c63b2f2e57e2a8263d30dd9ef9e198">synchronize</a> (bool hard=false, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1FileProcessor.html">BasicDB::FileProcessor</a> *proc=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronize updated contents with the file and the device.  <a href="#a46c63b2f2e57e2a8263d30dd9ef9e198"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a4c270255622f9c06beb4f98dee0984f5">clear</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove all records.  <a href="#a4c270255622f9c06beb4f98dee0984f5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a5623ea5644b49e95e4f2b38666fcb1ae">count</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of records.  <a href="#a5623ea5644b49e95e4f2b38666fcb1ae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a8894ceaf95838ede4021516c44d82824">size</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the database file.  <a href="#a8894ceaf95838ede4021516c44d82824"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a4e2b5308b9825138fb12feacc4d216ed">path</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the path of the database file.  <a href="#a4e2b5308b9825138fb12feacc4d216ed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a8fbcae66f3e1246ca8e3fee04726a75b">status</a> (std::map&lt; std::string, std::string &gt; *strmap)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the miscellaneous status information.  <a href="#a8fbcae66f3e1246ca8e3fee04726a75b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkyotocabinet_1_1PolyDB.html">PolyDB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a22affa381376bd89057431673c1fdaf7">reveal_inner_db</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reveal the inner database object.  <a href="#a22affa381376bd89057431673c1fdaf7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Cursor.html">BasicDB::Cursor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a18333827ddfbfe16be94ac9bb5885a8d">cursor</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a cursor object.  <a href="#a18333827ddfbfe16be94ac9bb5885a8d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a39d50284bd18b8e9106132901dcb0e22">log</a> (const char *file, int32_t line, const char *func, <a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960">BasicDB::Logger::Kind</a> kind, const char *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a log message.  <a href="#a39d50284bd18b8e9106132901dcb0e22"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a845ea5087c4075198313b15e4a95bf36">tune_logger</a> (<a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html">BasicDB::Logger</a> *logger, uint32_t kinds=<a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960a6a985b6bc2e4f16c3cb394a3de9972dd">BasicDB::Logger::WARN</a>|<a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960a2fc4717ffb4886b57aa5d343adf7d7ad">BasicDB::Logger::ERROR</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the internal logger.  <a href="#a845ea5087c4075198313b15e4a95bf36"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#aa20dd7b37ea72bafb45b0d8fcb9f02a3">tune_meta_trigger</a> (<a class="el" href="classkyotocabinet_1_1BasicDB_1_1MetaTrigger.html">BasicDB::MetaTrigger</a> *trigger)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the internal meta operation trigger.  <a href="#aa20dd7b37ea72bafb45b0d8fcb9f02a3"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkyotocabinet_1_1IndexDB.html#ae881165141cdee0295eddd406a54942f">report</a> (const char *file, int32_t line, const char *func, const char *format,...)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Report a message for debugging.  <a href="#ae881165141cdee0295eddd406a54942f"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Index database. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This class is designed to implement an indexing storage with an efficient appending operation for the existing record values. This class is a wrapper of the polymorphic database, featuring buffering mechanism to alleviate IO overhead in the database layer. This class can be inherited but overwriting methods is forbidden. Before every database operation, it is necessary to call the <a class="el" href="classkyotocabinet_1_1IndexDB.html#a13a1c1b344469ae57a15aad97c594751" title="Open a database file.">IndexDB::open</a> method in order to open a database file and connect the database object to it. To avoid data missing or corruption, it is important to close every database file by the <a class="el" href="classkyotocabinet_1_1IndexDB.html#ae5b8288a966cd7f735167ee009e5b2c2" title="Close the database file.">IndexDB::close</a> method when the database is no longer in use. It is forbidden for multible database objects in a process to open the same database at the same time. It is forbidden to share a database object with child processes. </dd></dl>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a089a39135fe98e42d7579cafad4a91df"></a><!-- doxytag: member="kyotocabinet::IndexDB::IndexDB" ref="a089a39135fe98e42d7579cafad4a91df" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkyotocabinet_1_1IndexDB.html#a089a39135fe98e42d7579cafad4a91df">kyotocabinet::IndexDB::IndexDB</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [explicit]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default constructor. </p>

</div>
</div>
<a class="anchor" id="adb8e2155f5880759c884d96e174954b1"></a><!-- doxytag: member="kyotocabinet::IndexDB::~IndexDB" ref="adb8e2155f5880759c884d96e174954b1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classkyotocabinet_1_1IndexDB.html#adb8e2155f5880759c884d96e174954b1">kyotocabinet::IndexDB::~IndexDB</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>If the database is not closed, it is closed implicitly. </dd></dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a43eeb2756754367bda566523dbb1c3c4"></a><!-- doxytag: member="kyotocabinet::IndexDB::error" ref="a43eeb2756754367bda566523dbb1c3c4" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Error.html">BasicDB::Error</a> <a class="el" href="classkyotocabinet_1_1IndexDB.html#a43eeb2756754367bda566523dbb1c3c4">kyotocabinet::IndexDB::error</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the last happened error. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the last happened error. </dd></dl>

</div>
</div>
<a class="anchor" id="a432e22e91fef59d7794c27ed5a2b91e1"></a><!-- doxytag: member="kyotocabinet::IndexDB::set_error" ref="a432e22e91fef59d7794c27ed5a2b91e1" args="(const char *file, int32_t line, const char *func, BasicDB::Error::Code code, const char *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classkyotocabinet_1_1IndexDB.html#a432e22e91fef59d7794c27ed5a2b91e1">kyotocabinet::IndexDB::set_error</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Error.html#aae81720eb2d1d8be04375d0f766d0fa2">BasicDB::Error::Code</a>&#160;</td>
          <td class="paramname"><em>code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>message</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the error information. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>the file name of the program source code. </td></tr>
    <tr><td class="paramname">line</td><td>the line number of the program source code. </td></tr>
    <tr><td class="paramname">func</td><td>the function name of the program source code. </td></tr>
    <tr><td class="paramname">code</td><td>an error code. </td></tr>
    <tr><td class="paramname">message</td><td>a supplement message. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8b4a5c7c0afbec9c6209419e13d423f7"></a><!-- doxytag: member="kyotocabinet::IndexDB::set_error" ref="a8b4a5c7c0afbec9c6209419e13d423f7" args="(BasicDB::Error::Code code, const char *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classkyotocabinet_1_1IndexDB.html#a432e22e91fef59d7794c27ed5a2b91e1">kyotocabinet::IndexDB::set_error</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Error.html#aae81720eb2d1d8be04375d0f766d0fa2">BasicDB::Error::Code</a>&#160;</td>
          <td class="paramname"><em>code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>message</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the error information without source code information. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">code</td><td>an error code. </td></tr>
    <tr><td class="paramname">message</td><td>a supplement message. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a13a1c1b344469ae57a15aad97c594751"></a><!-- doxytag: member="kyotocabinet::IndexDB::open" ref="a13a1c1b344469ae57a15aad97c594751" args="(const std::string &amp;path=&quot;:&quot;, uint32_t mode=BasicDB::OWRITER|BasicDB::OCREATE)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#a13a1c1b344469ae57a15aad97c594751">kyotocabinet::IndexDB::open</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>path</em> = <code>&quot;:&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>mode</em> = <code><a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664daed0e4bf55347835f8a1c277487767485">BasicDB::OWRITER</a>&#160;|&#160;<a class="el" href="classkyotocabinet_1_1BasicDB.html#a61bb905975c5bb2e9d3d890e65cf664dafddaf6558a2c6e43223eb5c6f0d0e240">BasicDB::OCREATE</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Open a database file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>the path of a database file. The same as with <a class="el" href="classkyotocabinet_1_1PolyDB.html" title="Polymorphic database.">PolyDB</a>. In addition, the following tuning parameters are supported. "idxclim" specifies the limit size of the internal cache. "idxcbnum" the bucket number of the internal cache. "idxdbnum" specifies the number of internal databases. "idxtmppath' specifies the path of the temporary directory. </td></tr>
    <tr><td class="paramname">mode</td><td>the connection mode. The same as with <a class="el" href="classkyotocabinet_1_1PolyDB.html" title="Polymorphic database.">PolyDB</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Every opened database must be closed by the <a class="el" href="classkyotocabinet_1_1IndexDB.html#ae5b8288a966cd7f735167ee009e5b2c2" title="Close the database file.">IndexDB::close</a> method when it is no longer in use. It is not allowed for two or more database objects in the same process to keep their connections to the same database file at the same time. </dd></dl>

</div>
</div>
<a class="anchor" id="ae5b8288a966cd7f735167ee009e5b2c2"></a><!-- doxytag: member="kyotocabinet::IndexDB::close" ref="ae5b8288a966cd7f735167ee009e5b2c2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#ae5b8288a966cd7f735167ee009e5b2c2">kyotocabinet::IndexDB::close</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Close the database file. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a5e63a88839cc8125820a2455b2550e25"></a><!-- doxytag: member="kyotocabinet::IndexDB::set" ref="a5e63a88839cc8125820a2455b2550e25" args="(const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#a5e63a88839cc8125820a2455b2550e25">kyotocabinet::IndexDB::set</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the value is overwritten. </dd></dl>

</div>
</div>
<a class="anchor" id="a25122b492c8901e6cd1161a2513d941a"></a><!-- doxytag: member="kyotocabinet::IndexDB::set" ref="a25122b492c8901e6cd1161a2513d941a" args="(const std::string &amp;key, const std::string &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#a5e63a88839cc8125820a2455b2550e25">kyotocabinet::IndexDB::set</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the value of a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#a404f686394fed04af54989925c86b555" title="Set the value of a record.">DB::set</a> method except that the parameters are std::string. </dd></dl>

</div>
</div>
<a class="anchor" id="ab0c7203e02661b49bd60e544c362b2f6"></a><!-- doxytag: member="kyotocabinet::IndexDB::add" ref="ab0c7203e02661b49bd60e544c362b2f6" args="(const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#ab0c7203e02661b49bd60e544c362b2f6">kyotocabinet::IndexDB::add</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the record is not modified and false is returned. </dd></dl>

</div>
</div>
<a class="anchor" id="af06141f3d1dc222aa75eba1eb82d6ac7"></a><!-- doxytag: member="kyotocabinet::IndexDB::add" ref="af06141f3d1dc222aa75eba1eb82d6ac7" args="(const std::string &amp;key, const std::string &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#ab0c7203e02661b49bd60e544c362b2f6">kyotocabinet::IndexDB::add</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the value of a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#adc4dd6b46fe5da9f18b3b138dacea71f" title="Add a record.">DB::add</a> method except that the parameters are std::string. </dd></dl>

</div>
</div>
<a class="anchor" id="a904a1008defc2e19e41c84386d94f087"></a><!-- doxytag: member="kyotocabinet::IndexDB::replace" ref="a904a1008defc2e19e41c84386d94f087" args="(const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#a904a1008defc2e19e41c84386d94f087">kyotocabinet::IndexDB::replace</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Replace the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, no new record is created and false is returned. If the corresponding record exists, the value is modified. </dd></dl>

</div>
</div>
<a class="anchor" id="a5dfa0bbd695f88989431f26d01044c0e"></a><!-- doxytag: member="kyotocabinet::IndexDB::replace" ref="a5dfa0bbd695f88989431f26d01044c0e" args="(const std::string &amp;key, const std::string &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#a904a1008defc2e19e41c84386d94f087">kyotocabinet::IndexDB::replace</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Replace the value of a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#abdffd77bbb95acf3ce805fd8dc9f7bb1" title="Replace the value of a record.">DB::replace</a> method except that the parameters are std::string. </dd></dl>

</div>
</div>
<a class="anchor" id="a1e3c12ff3f507a7e772ed72765dad74a"></a><!-- doxytag: member="kyotocabinet::IndexDB::append" ref="a1e3c12ff3f507a7e772ed72765dad74a" args="(const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#a1e3c12ff3f507a7e772ed72765dad74a">kyotocabinet::IndexDB::append</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the given value is appended at the end of the existing value. </dd></dl>

</div>
</div>
<a class="anchor" id="af62c70e54bbcf06ba405b38bbc88bc40"></a><!-- doxytag: member="kyotocabinet::IndexDB::append" ref="af62c70e54bbcf06ba405b38bbc88bc40" args="(const std::string &amp;key, const std::string &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#a1e3c12ff3f507a7e772ed72765dad74a">kyotocabinet::IndexDB::append</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the value of a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#abd7a961826d20e91fa43a5867534a6a8" title="Append the value of a record.">DB::append</a> method except that the parameters are std::string. </dd></dl>

</div>
</div>
<a class="anchor" id="a5f3636d157c62520dde6b71e9070dfa6"></a><!-- doxytag: member="kyotocabinet::IndexDB::remove" ref="a5f3636d157c62520dde6b71e9070dfa6" args="(const char *kbuf, size_t ksiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#a5f3636d157c62520dde6b71e9070dfa6">kyotocabinet::IndexDB::remove</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, false is returned. </dd></dl>

</div>
</div>
<a class="anchor" id="a6cf584112edfe367de6ac3b573e34fa6"></a><!-- doxytag: member="kyotocabinet::IndexDB::remove" ref="a6cf584112edfe367de6ac3b573e34fa6" args="(const std::string &amp;key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#a5f3636d157c62520dde6b71e9070dfa6">kyotocabinet::IndexDB::remove</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#ac1aaa8a4954cae19764c0e6d1dba3b72" title="Remove a record.">DB::remove</a> method except that the parameter is std::string. </dd></dl>

</div>
</div>
<a class="anchor" id="ab4b2ddfe746908cd3845918b4f957b6f"></a><!-- doxytag: member="kyotocabinet::IndexDB::get" ref="ab4b2ddfe746908cd3845918b4f957b6f" args="(const char *kbuf, size_t ksiz, size_t *sp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="classkyotocabinet_1_1IndexDB.html#ab4b2ddfe746908cd3845918b4f957b6f">kyotocabinet::IndexDB::get</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>sp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the value region of the corresponding record, or NULL on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, NULL is returned. Because an additional zero code is appended at the end of the region of the return value, the return value can be treated as a C-style string. Because the region of the return value is allocated with the the new[] operator, it should be released with the delete[] operator when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a9d627991d67c7740562c243dddf5e7f5"></a><!-- doxytag: member="kyotocabinet::IndexDB::get" ref="a9d627991d67c7740562c243dddf5e7f5" args="(const std::string &amp;key, std::string *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#ab4b2ddfe746908cd3845918b4f957b6f">kyotocabinet::IndexDB::get</a> </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::string *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the value of a record. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Equal to the original <a class="el" href="classkyotocabinet_1_1DB.html#a11fe066de448a7fb003614c5fe82a46d" title="Retrieve the value of a record.">DB::get</a> method except that the first parameters is the key string and the second parameter is a string to contain the result and the return value is bool for success. </dd></dl>

</div>
</div>
<a class="anchor" id="a46c63b2f2e57e2a8263d30dd9ef9e198"></a><!-- doxytag: member="kyotocabinet::IndexDB::synchronize" ref="a46c63b2f2e57e2a8263d30dd9ef9e198" args="(bool hard=false, BasicDB::FileProcessor *proc=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#a46c63b2f2e57e2a8263d30dd9ef9e198">kyotocabinet::IndexDB::synchronize</a> </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>hard</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1FileProcessor.html">BasicDB::FileProcessor</a> *&#160;</td>
          <td class="paramname"><em>proc</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Synchronize updated contents with the file and the device. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">hard</td><td>true for physical synchronization with the device, or false for logical synchronization with the file system. </td></tr>
    <tr><td class="paramname">proc</td><td>a postprocessor object. If it is NULL, no postprocessing is performed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The operation of the postprocessor is performed atomically and other threads accessing the same record are blocked. To avoid deadlock, any explicit database operation must not be performed in this function. </dd></dl>

</div>
</div>
<a class="anchor" id="a4c270255622f9c06beb4f98dee0984f5"></a><!-- doxytag: member="kyotocabinet::IndexDB::clear" ref="a4c270255622f9c06beb4f98dee0984f5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#a4c270255622f9c06beb4f98dee0984f5">kyotocabinet::IndexDB::clear</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove all records. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a5623ea5644b49e95e4f2b38666fcb1ae"></a><!-- doxytag: member="kyotocabinet::IndexDB::count" ref="a5623ea5644b49e95e4f2b38666fcb1ae" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="classkyotocabinet_1_1IndexDB.html#a5623ea5644b49e95e4f2b38666fcb1ae">kyotocabinet::IndexDB::count</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the number of records. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of records, or -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a8894ceaf95838ede4021516c44d82824"></a><!-- doxytag: member="kyotocabinet::IndexDB::size" ref="a8894ceaf95838ede4021516c44d82824" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="classkyotocabinet_1_1IndexDB.html#a8894ceaf95838ede4021516c44d82824">kyotocabinet::IndexDB::size</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the size of the database file. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the size of the database file in bytes, or -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a4e2b5308b9825138fb12feacc4d216ed"></a><!-- doxytag: member="kyotocabinet::IndexDB::path" ref="a4e2b5308b9825138fb12feacc4d216ed" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string <a class="el" href="classkyotocabinet_1_1IndexDB.html#a4e2b5308b9825138fb12feacc4d216ed">kyotocabinet::IndexDB::path</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the path of the database file. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the path of the database file, or an empty string on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a8fbcae66f3e1246ca8e3fee04726a75b"></a><!-- doxytag: member="kyotocabinet::IndexDB::status" ref="a8fbcae66f3e1246ca8e3fee04726a75b" args="(std::map&lt; std::string, std::string &gt; *strmap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#a8fbcae66f3e1246ca8e3fee04726a75b">kyotocabinet::IndexDB::status</a> </td>
          <td>(</td>
          <td class="paramtype">std::map&lt; std::string, std::string &gt; *&#160;</td>
          <td class="paramname"><em>strmap</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the miscellaneous status information. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">strmap</td><td>a string map to contain the result. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a22affa381376bd89057431673c1fdaf7"></a><!-- doxytag: member="kyotocabinet::IndexDB::reveal_inner_db" ref="a22affa381376bd89057431673c1fdaf7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkyotocabinet_1_1PolyDB.html">PolyDB</a>* <a class="el" href="classkyotocabinet_1_1IndexDB.html#a22affa381376bd89057431673c1fdaf7">kyotocabinet::IndexDB::reveal_inner_db</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reveal the inner database object. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the inner database object, or NULL on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a18333827ddfbfe16be94ac9bb5885a8d"></a><!-- doxytag: member="kyotocabinet::IndexDB::cursor" ref="a18333827ddfbfe16be94ac9bb5885a8d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Cursor.html">BasicDB::Cursor</a>* <a class="el" href="classkyotocabinet_1_1IndexDB.html#a18333827ddfbfe16be94ac9bb5885a8d">kyotocabinet::IndexDB::cursor</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a cursor object. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the return value is the created cursor object. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Because the object of the return value is allocated by the constructor, it should be released with the delete operator when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a39d50284bd18b8e9106132901dcb0e22"></a><!-- doxytag: member="kyotocabinet::IndexDB::log" ref="a39d50284bd18b8e9106132901dcb0e22" args="(const char *file, int32_t line, const char *func, BasicDB::Logger::Kind kind, const char *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classkyotocabinet_1_1IndexDB.html#a39d50284bd18b8e9106132901dcb0e22">kyotocabinet::IndexDB::log</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960">BasicDB::Logger::Kind</a>&#160;</td>
          <td class="paramname"><em>kind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>message</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Write a log message. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>the file name of the program source code. </td></tr>
    <tr><td class="paramname">line</td><td>the line number of the program source code. </td></tr>
    <tr><td class="paramname">func</td><td>the function name of the program source code. </td></tr>
    <tr><td class="paramname">kind</td><td>the kind of the event. Logger::DEBUG for debugging, Logger::INFO for normal information, Logger::WARN for warning, and Logger::ERROR for fatal error. </td></tr>
    <tr><td class="paramname">message</td><td>the supplement message. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a845ea5087c4075198313b15e4a95bf36"></a><!-- doxytag: member="kyotocabinet::IndexDB::tune_logger" ref="a845ea5087c4075198313b15e4a95bf36" args="(BasicDB::Logger *logger, uint32_t kinds=BasicDB::Logger::WARN|BasicDB::Logger::ERROR)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#a845ea5087c4075198313b15e4a95bf36">kyotocabinet::IndexDB::tune_logger</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html">BasicDB::Logger</a> *&#160;</td>
          <td class="paramname"><em>logger</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>kinds</em> = <code><a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960a6a985b6bc2e4f16c3cb394a3de9972dd">BasicDB::Logger::WARN</a>&#160;|&#160;<a class="el" href="classkyotocabinet_1_1BasicDB_1_1Logger.html#a8b132bbfe38dd885513c2b5e8079c960a2fc4717ffb4886b57aa5d343adf7d7ad">BasicDB::Logger::ERROR</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the internal logger. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">logger</td><td>the logger object. </td></tr>
    <tr><td class="paramname">kinds</td><td>kinds of logged messages by bitwise-or: Logger::DEBUG for debugging, Logger::INFO for normal information, Logger::WARN for warning, and Logger::ERROR for fatal error. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="aa20dd7b37ea72bafb45b0d8fcb9f02a3"></a><!-- doxytag: member="kyotocabinet::IndexDB::tune_meta_trigger" ref="aa20dd7b37ea72bafb45b0d8fcb9f02a3" args="(BasicDB::MetaTrigger *trigger)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classkyotocabinet_1_1IndexDB.html#aa20dd7b37ea72bafb45b0d8fcb9f02a3">kyotocabinet::IndexDB::tune_meta_trigger</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classkyotocabinet_1_1BasicDB_1_1MetaTrigger.html">BasicDB::MetaTrigger</a> *&#160;</td>
          <td class="paramname"><em>trigger</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the internal meta operation trigger. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">trigger</td><td>the trigger object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="ae881165141cdee0295eddd406a54942f"></a><!-- doxytag: member="kyotocabinet::IndexDB::report" ref="ae881165141cdee0295eddd406a54942f" args="(const char *file, int32_t line, const char *func, const char *format,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classkyotocabinet_1_1IndexDB.html#ae881165141cdee0295eddd406a54942f">kyotocabinet::IndexDB::report</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Report a message for debugging. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>the file name of the program source code. </td></tr>
    <tr><td class="paramname">line</td><td>the line number of the program source code. </td></tr>
    <tr><td class="paramname">func</td><td>the function name of the program source code. </td></tr>
    <tr><td class="paramname">format</td><td>the printf-like format string. </td></tr>
    <tr><td class="paramname">...</td><td>used according to the format string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated on Fri May 25 2012 01:21:36 for Kyoto Cabinet by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>
